home *** CD-ROM | disk | FTP | other *** search
Text File | 1995-11-16 | 1.5 KB | 69 lines | [TEXT/CWIE] |
- unit MyVersionResource;
-
- interface
-
- uses
- Types;
-
- type
- versionRecord = packed record
- numericVersion: NumVersion;
- countryCode: integer;
- shortVersion: str15;
- longVersion: Str255;
- name: str63;
- end;
-
- procedure GetVersion (var vers: versionRecord);
- procedure SetVersionParamText (c3: Str255);
-
- implementation
-
- uses
- Resources, Memory, Dialogs, MyStrings;
-
- procedure GetVersion (var vers: versionRecord);
- var
- vh: handle;
- p: integer;
- begin
- with vers do begin
- vh := GetResource('vers', 1);
- if vh = nil then begin
- longint(numericVersion) := $00002000;
- countryCode := 0;
- shortVersion := '0.0.0';
- longVersion := 'Unknown v0.0.0';
- name := 'Unknown';
- end else begin
- BlockMoveData(vh^, @vers, sizeof(vers));
- BlockMoveData(Ptr(longint(vh^) + (longint(@shortVersion) - longint(@vers)) + length(shortVersion) + 1), @longVersion, sizeof(longVersion));
- if length(shortVersion) >= sizeof(shortVersion) then begin
- {$PUSH}
- {$R-}
- shortVersion[0] := chr(sizeof(shortVersion) - 1);
- {$POP}
- end;
- ReleaseResource(vh);
- end;
- p := TPPos(shortVersion, longVersion);
- while (p > 0) & (vers.longVersion[p] <> ' ') do begin
- p := p - 1;
- end;
- p := p - 1;
- if p < 1 then begin
- p := 255;
- end;
- name := TPcopy(vers.longVersion, 1, p);
- end;
- end;
-
- procedure SetVersionParamText (c3: Str255);
- var
- vers: versionRecord;
- begin
- GetVersion(vers);
- ParamText(vers.shortVersion, vers.longVersion, vers.name, c3);
- end;
-
- end.